package com.huilian.iotbox.data.vo;

import com.huilian.iotbox.data.dto.QueryParam;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

@Data
public class CommodityStockRecordVo extends QueryParam implements Serializable {
    private Long id;

    /**
     * 场地Id
     */
    private Integer merchantStoreId;

    /**
     * 用户Id
     */
    private Integer userId;
    /**
     * 设备id
     */
    private Integer deviceId;
    /**
     * 订单号
     */
    private String outTradeNo;
    /**
     * 原因/说明，
     */
    private String description;
    /**
     * 调入仓库
     */
    private Long inDisplayRackId;
    /**
     * 调出仓库
     */
    private Long outDisplayRackId;
    /**
     * 一级类型：1.入库单，2.出库，3.调拨，4.退货，5.盘点单
     */
    private Integer firstType;

    /**
     * 二级类型：1.换货出库，2.销售出库，3.手动出库，4.兑换出库，5.撤销回收，
     * 6.设备出礼，7.盘亏出库，8.设备绑定商品，21.手动入库，22.换货入库，
     * 23.盘盈入库，24.销售退款，25.设备绑定商品，41.商品盘点，51.设备绑定商品，61.销售退款，
     */
    private Integer secondaryType;

    /**
     * 操作商户ID，User表的ID
     */
    private Integer operationUserId;

    private Date createTime;
    private Date updateTime;

    private String fullName;
    private Integer quantity;
    private BigDecimal costPrice;
    private BigDecimal retailPrice;
    private String userName;
    private Integer commodityGroupId;
    private Integer groupType;
    private Integer totalStockBefore;
    private Integer totalStockAfter;
    private Integer totalDifference;
    private BigDecimal totalDifferenceCostPrice;
    private BigDecimal totalDifferenceRetailPrice;
    private String operationName;
    private String operationMobile;
    private String name;
    private String mobile;
    private String displayRackName;

    List<CommodityStockRecordItemVo> commodityStockRecordItemVoList;
    /**
     * 商品ID
     */
    private Long commodityId;

    private Integer totalQuantity;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品图片
     */
    private String goodsFileName;

    /**
     * 商品条形码
     */
    private String goodsBarCode;

    /**
     * 设备类型名称
     */
    private String deviceTypeName;

    /**
     * 设备号
     */
    private String deviceNo;

    /**
     * 编号，如1号机
     */
    private Integer deviceAlias;


    /**
     * 场地名称
     */
    private String storeName;

    private Integer numberOfGoodsInStock;

    private Integer numberOfPlacesOfOrigin;

    private Integer numberOfDevices;

    private String spec;

    private String fileName;

    private Integer replenishmentQuantity;

    private Integer status;

    private Long commodityStockRecordItemId;

    private Integer hierarchy;

    private Integer freightLane;

    /**
     * 总成本
     * */
    private BigDecimal totalCostPrice;

    /**
     * 总销售额
     * */
    private BigDecimal totalRetailPrice;

    private String commodityName;

    private Integer stockAfter;

    private Integer stockBefore;

    private BigDecimal costPriceBefore;

    private BigDecimal costPriceAfter;

    private BigDecimal retailPriceBefore;

    private BigDecimal retailPriceAfter;

    private String remark;
    private BigDecimal totalProfit;

    private LocalDate startDateStr;
    private LocalDate endDateStr;
    private LocalDate localDate;
}
